Random or pseudo-random code generators are important for many electronic products requiring data having many of the attributes of random numbers such as lack of predictability, likelihood or high probability of two numbers being different and the like, wherein the numbers are realized through simple, efficient hardware in a timely fashion. Diverse examples of such electronic products include cryptographic apparatus, wherein pseudo-random numbers may furnish component portions of a cryptographic key; low probability of intercept communications apparatus, wherein pseudo-random numbers afford information security (sometimes in combination with low transmitted power levels); "spoof-proof" radar/lidar and/or other remote sensing systems requiring a variable code as the transmitted or probing signal; global positioning system equipment wherein pseudo-random numbers, some having repetition periods of on the order of a year or more, are employed both as codes for restricting access to appropriate users and to effect code division multiple access (CDMA) between a plurality of distinct signal sources; and multiple access communications gear, wherein a particular communication or communication channel or device is selected through a random or pseudo-random number, among others.
Pseudo-random or random number generators are readily realized but often suffer from lack of divergence or diversity. In applications where a population of substantially similar generators are employed, it is possible for two or more such generators to start or initialize from substantially the same state at the same time. When this occurs, it is unlikely that these generators will diverge, i.e., the generators may continue to produce substantially the same numbers for an unacceptably long interval. When proper operation of the system requires that the generators provide different numbers at least some of the time during some finite observation window or interval, system operation is compromised or inhibited.
Often, pseudo-random numbers are realized through some form of pseudo-random number generator, which may be conveniently realized as a linear feedback shift register (LFSR). LFSRs typically comprise a serial shift register including a serially coupled set of cells and a selection of taps along the serial register length. The selected taps are typically combined in some fashion and a result is "fed back" to other serial shift register cells, e.g., the first cell of the series. When a series of M many cells are employed and are appropriately interconnected via taps, an output data stream (known in the relevant art as a maximal length sequence) may be realized having a length of 2.sup.M -1 prior to repeating a complete prior output data stream.
A problem with such systems is that it is possible for the LFSR to initialize to a state known as "all zeroes" from which the LFSR cannot escape absent some external influence, i.e., the register is "stuck" and produces a special pseudo-random number, e.g., zero. This is generally undesirable in systems where a steady-state random or pseudo-random number is necessary or preferable for optimal system operation.
Thus, what is needed is a practical, economical apparatus and accompanying method for realizing a random or pseudo-random number, wherein (i) the random or pseudo-random number varies (i.e., does not get "stuck") and (ii) a plurality of such generators will diverge or provide different results during an observation interval even when two or more of the plurality start from substantially the same initial state at the same time .